准备在自己的两台服务器搭建两套MySQL的主从,来试下ShardingJDBC,结果碰到了Docker容器报错,可能和我前段时间调整ifconfig里的参数有关。导致的

[root@iZbp18nyz28va2zwadft2qZ ~]# docker run -p 3339:3306 --name mymysql -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7
WARNING: IPv4 forwarding is disabled. Networking will not work.
b9f0e08c8a9e421a3ef180349da896a0fda3b9660147459b834eed2c792d1e45

解决办法:

1. vim /usr/lib/sysctl.d/00-system.conf

[root@iZbp18nyz28va2zwadft2qZ ~]#  vim  /usr/lib/sysctl.d/00-system.conf
# Kernel sysctl configuration file
#
# For binary values, 0 is disabled, 1 is enabled.  See sysctl(8) and
# sysctl.conf(5) for more details.

# Disable netfilter on bridges.
net.bridge.bridge-nf-call-ip6tables = 0
net.bridge.bridge-nf-call-iptables = 0
net.bridge.bridge-nf-call-arptables = 0
net.ipv4.ip_forward=1

然后保存退出。

2.重启下network

[root@iZbp18nyz28va2zwadft2qZ ~]# systemctl restart network

完成以后,删除错误的容器,再次创建新容器,就不再报错了。